// 求x和y之间的和
// 1+2+3+4+5+5+6+7+8+9+10 ... +100
// 1 + sum(1,100) + sum(2,100) + sum(3,100) + sum(4,100)
// sum(1, 100);

// function sum(x, y) {
//   console.log("x-->", x, "y-->", y);
//   if (x === y) {
//     return x;
//   }
//   return x + sum(x + 1, y);
// }

// console.log(sum(1, 100));

// 求某个数的阶乘
// 1*2*3*4*5...*x
// factor(5)
// 5 * factor(4)
// 5 * (4 * factor(3))
// 5 * (4 * (3 * factor(2)))
// 5 * (4 * (3 * (2 * factor(1))))
// 5 * (4 *(3 * (2 * 1)))
// 5 * (4 *(3 * 2))
// 5 * (4 * 6)
// 5 * 24
// 120
// function factorial(x) {
//   if (x === 1) {
//     return 1;
//   }
//   const res = x * factorial(x - 1);
//   console.log(x, res);
//   return res;
// }
// console.log(factorial(5));

// 斐波那契数列
// 1，2，3，5，8，13，21，34，55
// 通过入参返回这个索引的斐波那契数4
// calc(4)
// 1 + (calc(4-1) + calc(4-2))
console.log(cacl(4));
function cacl(x) {
  if (x === 1) {
    return 1;
  } else if (x === 2) {
    return 2;
  }
  return cacl(x - 1) + cacl(x - 2);
}
